const initialState = {
    all:[], // 这个是所有产品
    foo:"bar"
}
const all = (state = [],action) => {
    let { type,payload } = action
    // type: "GET_PRODUCTS" ; payload: (3) [{…}, {…}, {…}]是数组。
    switch (type) {
        case "GET_PRODUCTS":
            // console.log(type,"444",payload)
            return [...payload]
        case "ADD_TO_CART":
            // 先用传递过来的item在当前state里面查找，查找到之后让库存（inventory）数量-1
            let res = state.find(item => item.id === payload.id)
            // 注意，这里必须要用到高阶函数item,不能直接写成 let res = state.all.find(state.id === payload.id),否则会报错。
            // console.log(res.inventory)
            res.inventory-- // 让库存-1，注意，这里不能写成res.inventory-1，会报错。
            return [...state]
        default:
            return state
    }
}

export default (state = initialState,action) => {
    return {
        all:all(state.all,action),
        foo:state.foo
    }
}